const promise1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    reject();
  }, 1000);
});
const promise2 = promise1.catch(() => {
  return 2;
});

console.log('promise1', promise1);
console.log('promise2', promise2);

setTimeout(() => {
  console.log('promise1', promise1);
  console.log('promise2', promise2);
}, 2000);


/* 
pending 
pending

<rejected>undefined
<fulfilled> 2


全局代码执行完成：
微队列   
宏队列    p1：setTimeout（reject） 

执行宏任务之后：
微队列    p2

*/